<!DOCTYPE html>
<html>
  <head>
    <title>Test inheritance through various anonymous boxes: {ib}
           situations, buttons, overflow, columns, listboxes, first-line</title>
    <style>
      /**
       * The idea is that "color" inherits by default while "border-color" does
       * not.  So if the former is red and the latter is green on a parent, and
       * the child's border-color is set to "inherit", it'll be green only if
       * the child is inheriting from the parent.  If not, it'll either be
       * whatever the border-color is on what it's inheriting from, which will
       * be red if what it's inheriting from has the default (currentColor)
       * border-color).
       */
      
      /* 't' for "test" */
      * { color: red; border: 0px hidden red; background: transparent }
      .t { border-color: green }
      .t:not(.d2) > :first-child
        { border-color: inherit; border-style: solid; border-width: 10px }
      .d2 > span { border-style: solid; border-width: 10px }
      .f::first-line { border-color: green }
    </style>
    <script>
      function make(str) {
        return document.createElement(str);
      }
      
      function makeDiv() {
        return make("div");
      }

      window.onload = function() {
        var lst = document.getElementsByClassName("d");
        for (var i = 0; i < lst.length; ++i) {
          if (lst[i].nodeName != "select") {
            lst[i].appendChild(makeDiv());
          } else {
            lst[i].appendChild(make("option"));
          }
        }

        lst = document.getElementsByClassName("d2");
        for (i = 0; i < lst.length; ++i) {
          var span = lst[i].getElementsByTagName("span")[0];
          span.style.cssText =
            "border-color: inherit; border-style: solid; border-width: 10px";
        }        

        var x = document.getElementsByClassName("f d")[0];
        x.appendChild(make("span"));
        x.appendChild(make("br"));
        x.appendChild(make("span"));
      }
    </script>
  </head>
  <body>
    <div class="t"><div></div></div>
    <span class="t"><div></div></span>
    <span style="position: relative" class="t"><div></div></span>
    <div class="f"><span></span><br><span></span></div>
    <button class="t"><div></div></button>
    <div style="overflow: auto" class="t"><div></div></div>
    <div style="-moz-column-count: 2" class="t"><div></div></div>
    <select size="2" class="t">
      <option></option>
    </select>

    <div class="t d"></div>
    <span class="t d"></span>
    <span style="position: relative" class="t d"></span>
    <div class="f d"></div>
    <button class="t d"></button>
    <div style="overflow: auto" class="t d"></div>
    <div style="-moz-column-count: 2" class="t d"></div>
    <select size="2" class="t d">
      <option></option>
    </select>

    <span class="t d2"><div></div><span></span></span>
    <span style="position: relative" class="t d2"><div></div><span></span></span>
  </body>
</html>
